home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / Lists.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  17.6 KB  |  636 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        Lists.h
  3.  
  4.      Contains:    List Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1985-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __LISTS__
  18. #define __LISTS__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __CONTROLS__
  25.     #include <Controls.h>
  26. #endif
  27.  
  28.  
  29.  
  30.  
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_STRUCT_ALIGN
  44.     #pragma options align=mac68k
  45. #elif PRAGMA_STRUCT_PACKPUSH
  46.     #pragma pack(push, 2)
  47. #elif PRAGMA_STRUCT_PACK
  48.     #pragma pack(2)
  49. #endif
  50.  
  51. typedef Point                             Cell;
  52. typedef Rect                             ListBounds;
  53. typedef char                             DataArray[32001];
  54. typedef char *                            DataPtr;
  55. typedef DataPtr *                        DataHandle;
  56. typedef CALLBACK_API( short , ListSearchProcPtr )(Ptr aPtr, Ptr bPtr, short aLen, short bLen);
  57. typedef CALLBACK_API( Boolean , ListClickLoopProcPtr )(void );
  58. /*
  59.     WARNING: ListClickLoopProcPtr uses register based parameters under classic 68k
  60.              and cannot be written in a high-level language without 
  61.              the help of mixed mode or assembly glue.
  62. */
  63. typedef STACK_UPP_TYPE(ListSearchProcPtr)                         ListSearchUPP;
  64. typedef REGISTER_UPP_TYPE(ListClickLoopProcPtr)                 ListClickLoopUPP;
  65. #if !TARGET_OS_MAC
  66. /* QuickTime 3.0 */
  67. typedef long                             ListNotification;
  68. enum {
  69.     listNotifyNothing            = FOUR_CHAR_CODE('nada'),        /* No (null) notification*/
  70.     listNotifyClick                = FOUR_CHAR_CODE('clik'),        /* Control was clicked*/
  71.     listNotifyDoubleClick        = FOUR_CHAR_CODE('dblc'),        /* Control was double-clicked*/
  72.     listNotifyPreClick            = FOUR_CHAR_CODE('pclk')        /* Control about to be clicked*/
  73. };
  74.  
  75. #endif  /* !TARGET_OS_MAC */
  76.  
  77.  
  78. struct ListRec {
  79.     Rect                             rView;
  80.     GrafPtr                         port;
  81.     Point                             indent;
  82.     Point                             cellSize;
  83.     ListBounds                         visible;
  84.     ControlHandle                     vScroll;
  85.     ControlHandle                     hScroll;
  86.     SInt8                             selFlags;
  87.     Boolean                         lActive;
  88.     SInt8                             lReserved;
  89.     SInt8                             listFlags;
  90.     long                             clikTime;
  91.     Point                             clikLoc;
  92.     Point                             mouseLoc;
  93.     ListClickLoopUPP                 lClickLoop;
  94.     Cell                             lastClick;
  95.     long                             refCon;
  96.     Handle                             listDefProc;
  97.     Handle                             userHandle;
  98.     ListBounds                         dataBounds;
  99.     DataHandle                         cells;
  100.     short                             maxIndex;
  101.     short                             cellArray[1];
  102. };
  103. typedef struct ListRec                    ListRec;
  104.  
  105. typedef ListRec *                        ListPtr;
  106. typedef ListPtr *                        ListHandle;
  107. /* ListRef is obsolete.  Use ListHandle. */
  108. typedef ListHandle                         ListRef;
  109.  
  110.  
  111. enum {
  112.                                                                 /* ListRec.listFlags bits*/
  113.     lDoVAutoscrollBit            = 1,
  114.     lDoHAutoscrollBit            = 0
  115. };
  116.  
  117. enum {
  118.                                                                 /* ListRec.listFlags masks*/
  119.     lDoVAutoscroll                = 2,
  120.     lDoHAutoscroll                = 1
  121. };
  122.  
  123.  
  124. enum {
  125.                                                                 /* ListRec.selFlags bits*/
  126.     lOnlyOneBit                    = 7,
  127.     lExtendDragBit                = 6,
  128.     lNoDisjointBit                = 5,
  129.     lNoExtendBit                = 4,
  130.     lNoRectBit                    = 3,
  131.     lUseSenseBit                = 2,
  132.     lNoNilHiliteBit                = 1
  133. };
  134.  
  135.  
  136. enum {
  137.                                                                 /* ListRec.selFlags masks*/
  138.     lOnlyOne                    = -128,
  139.     lExtendDrag                    = 64,
  140.     lNoDisjoint                    = 32,
  141.     lNoExtend                    = 16,
  142.     lNoRect                        = 8,
  143.     lUseSense                    = 4,
  144.     lNoNilHilite                = 2
  145. };
  146.  
  147.  
  148. enum {
  149.                                                                 /* LDEF messages*/
  150.     lInitMsg                    = 0,
  151.     lDrawMsg                    = 1,
  152.     lHiliteMsg                    = 2,
  153.     lCloseMsg                    = 3
  154. };
  155.  
  156.  
  157.  
  158.  
  159. typedef CALLBACK_API( void , ListDefProcPtr )(short lMessage, Boolean lSelect, Rect *lRect, Cell lCell, short lDataOffset, short lDataLen, ListHandle lHandle);
  160. typedef STACK_UPP_TYPE(ListDefProcPtr)                             ListDefUPP;
  161. #if OPAQUE_UPP_TYPES
  162.     EXTERN_API(ListSearchUPP)
  163.     NewListSearchUPP               (ListSearchProcPtr        userRoutine);
  164.  
  165.     EXTERN_API(ListClickLoopUPP)
  166.     NewListClickLoopUPP               (ListClickLoopProcPtr    userRoutine);
  167.  
  168.     EXTERN_API(ListDefUPP)
  169.     NewListDefUPP                   (ListDefProcPtr            userRoutine);
  170.  
  171.     EXTERN_API(void)
  172.     DisposeListSearchUPP           (ListSearchUPP            userUPP);
  173.  
  174.     EXTERN_API(void)
  175.     DisposeListClickLoopUPP           (ListClickLoopUPP        userUPP);
  176.  
  177.     EXTERN_API(void)
  178.     DisposeListDefUPP               (ListDefUPP                userUPP);
  179.  
  180.     EXTERN_API(short)
  181.     InvokeListSearchUPP               (Ptr                        aPtr,
  182.                                     Ptr                        bPtr,
  183.                                     short                    aLen,
  184.                                     short                    bLen,
  185.                                     ListSearchUPP            userUPP);
  186.  
  187.     EXTERN_API(Boolean)
  188.     InvokeListClickLoopUPP           (ListClickLoopUPP        userUPP);
  189.  
  190.     EXTERN_API(void)
  191.     InvokeListDefUPP               (short                    lMessage,
  192.                                     Boolean                    lSelect,
  193.                                     Rect *                    lRect,
  194.                                     Cell                    lCell,
  195.                                     short                    lDataOffset,
  196.                                     short                    lDataLen,
  197.                                     ListHandle                lHandle,
  198.                                     ListDefUPP                userUPP);
  199.  
  200. #else
  201.     enum { uppListSearchProcInfo = 0x00002BE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 2_bytes, 2_bytes) */
  202.     enum { uppListClickLoopProcInfo = 0x00000012 };                 /* register 1_byte:D0 Func() */
  203.     enum { uppListDefProcInfo = 0x000EBD80 };                         /* pascal no_return_value Func(2_bytes, 1_byte, 4_bytes, 4_bytes, 2_bytes, 2_bytes, 4_bytes) */
  204.     #define NewListSearchUPP(userRoutine)                             (ListSearchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppListSearchProcInfo, GetCurrentArchitecture())
  205.     #define NewListClickLoopUPP(userRoutine)                         (ListClickLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppListClickLoopProcInfo, GetCurrentArchitecture())
  206.     #define NewListDefUPP(userRoutine)                                 (ListDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppListDefProcInfo, GetCurrentArchitecture())
  207.     #define DisposeListSearchUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  208.     #define DisposeListClickLoopUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  209.     #define DisposeListDefUPP(userUPP)                                 DisposeRoutineDescriptor(userUPP)
  210.     #define InvokeListSearchUPP(aPtr, bPtr, aLen, bLen, userUPP)     (short)CALL_FOUR_PARAMETER_UPP((userUPP), uppListSearchProcInfo, (aPtr), (bPtr), (aLen), (bLen))
  211.     #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
  212.     #pragma parameter __D0 InvokeListClickLoopUPP(__A0)
  213.     Boolean InvokeListClickLoopUPP(ListClickLoopUPP userUPP) = 0x4E90;
  214.     #else
  215.         #define InvokeListClickLoopUPP(userUPP)                         (Boolean)CALL_ZERO_PARAMETER_UPP((userUPP), uppListClickLoopProcInfo)
  216.     #endif
  217.     #define InvokeListDefUPP(lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle, userUPP)  CALL_SEVEN_PARAMETER_UPP((userUPP), uppListDefProcInfo, (lMessage), (lSelect), (lRect), (lCell), (lDataOffset), (lDataLen), (lHandle))
  218. #endif
  219. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  220. #define NewListSearchProc(userRoutine)                             NewListSearchUPP(userRoutine)
  221. #define NewListClickLoopProc(userRoutine)                         NewListClickLoopUPP(userRoutine)
  222. #define NewListDefProc(userRoutine)                             NewListDefUPP(userRoutine)
  223. #define CallListSearchProc(userRoutine, aPtr, bPtr, aLen, bLen)    InvokeListSearchUPP(aPtr, bPtr, aLen, bLen, userRoutine)
  224. #define CallListClickLoopProc(userRoutine)                        InvokeListClickLoopUPP(userRoutine)
  225. #define CallListDefProc(userRoutine, lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle) InvokeListDefUPP(lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle, userRoutine)
  226. enum {
  227.     kListDefUserProcType        = 0,
  228.     kListDefStandardTextType    = 1,
  229.     kListDefStandardIconType    = 2
  230. };
  231.  
  232. typedef UInt32                             ListDefType;
  233.  
  234. struct ListDefSpec {
  235.     ListDefType                     defType;
  236.     union {
  237.         ListDefUPP                         userProc;
  238.     }                                 u;
  239. };
  240. typedef struct ListDefSpec                ListDefSpec;
  241. EXTERN_API( OSStatus )
  242. CreateCustomList                (const Rect *            rView,
  243.                                  const ListBounds *        dataBounds,
  244.                                  Point                     cellSize,
  245.                                  const ListDefSpec *    theSpec,
  246.                                  WindowPtr                 theWindow,
  247.                                  Boolean                 drawIt,
  248.                                  Boolean                 hasGrow,
  249.                                  Boolean                 scrollHoriz,
  250.                                  Boolean                 scrollVert,
  251.                                  ListHandle *            outList);
  252.  
  253.  
  254. #if !TARGET_OS_MAC
  255. /* QuickTime 3.0 */
  256. typedef CALLBACK_API( void , ListNotificationProcPtr )(ListHandle theList, ListNotification notification, long param);
  257.  
  258. typedef ListNotificationProcPtr         ListNotificationUPP;
  259. EXTERN_API_C( void )
  260. LSetNotificationCallback        (ListNotificationProcPtr  callBack,
  261.                                  ListHandle             lHandle);
  262.  
  263. EXTERN_API_C( void )
  264. GetListVisibleBounds            (ListHandle             theList,
  265.                                  Rect *                    visibleBounds);
  266.  
  267. #endif  /* !TARGET_OS_MAC */
  268.  
  269. EXTERN_API( ListHandle )
  270. LNew                            (const Rect *            rView,
  271.                                  const ListBounds *        dataBounds,
  272.                                  Point                     cSize,
  273.                                  short                     theProc,
  274.                                  WindowPtr                 theWindow,
  275.                                  Boolean                 drawIt,
  276.                                  Boolean                 hasGrow,
  277.                                  Boolean                 scrollHoriz,
  278.                                  Boolean                 scrollVert)                            THREEWORDINLINE(0x3F3C, 0x0044, 0xA9E7);
  279.  
  280. EXTERN_API( void )
  281. LDispose                        (ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0028, 0xA9E7);
  282.  
  283. EXTERN_API( short )
  284. LAddColumn                        (short                     count,
  285.                                  short                     colNum,
  286.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0004, 0xA9E7);
  287.  
  288. EXTERN_API( short )
  289. LAddRow                            (short                     count,
  290.                                  short                     rowNum,
  291.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0008, 0xA9E7);
  292.  
  293. EXTERN_API( void )
  294. LDelColumn                        (short                     count,
  295.                                  short                     colNum,
  296.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0020, 0xA9E7);
  297.  
  298. EXTERN_API( void )
  299. LDelRow                            (short                     count,
  300.                                  short                     rowNum,
  301.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0024, 0xA9E7);
  302.  
  303. EXTERN_API( Boolean )
  304. LGetSelect                        (Boolean                 next,
  305.                                  Cell *                    theCell,
  306.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x003C, 0xA9E7);
  307.  
  308. EXTERN_API( Cell )
  309. LLastClick                        (ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0040, 0xA9E7);
  310.  
  311. EXTERN_API( Boolean )
  312. LNextCell                        (Boolean                 hNext,
  313.                                  Boolean                 vNext,
  314.                                  Cell *                    theCell,
  315.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0048, 0xA9E7);
  316.  
  317. EXTERN_API( Boolean )
  318. LSearch                            (const void *            dataPtr,
  319.                                  short                     dataLen,
  320.                                  ListSearchUPP             searchProc,
  321.                                  Cell *                    theCell,
  322.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0054, 0xA9E7);
  323.  
  324. EXTERN_API( void )
  325. LSize                            (short                     listWidth,
  326.                                  short                     listHeight,
  327.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0060, 0xA9E7);
  328.  
  329. EXTERN_API( void )
  330. LSetDrawingMode                    (Boolean                 drawIt,
  331.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x002C, 0xA9E7);
  332.  
  333. EXTERN_API( void )
  334. LScroll                            (short                     dCols,
  335.                                  short                     dRows,
  336.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0050, 0xA9E7);
  337.  
  338. EXTERN_API( void )
  339. LAutoScroll                        (ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0010, 0xA9E7);
  340.  
  341. EXTERN_API( void )
  342. LUpdate                            (RgnHandle                 theRgn,
  343.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0064, 0xA9E7);
  344.  
  345. EXTERN_API( void )
  346. LActivate                        (Boolean                 act,
  347.                                  ListHandle             lHandle)                            TWOWORDINLINE(0x4267, 0xA9E7);
  348.  
  349. EXTERN_API( void )
  350. LCellSize                        (Point                     cSize,
  351.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0014, 0xA9E7);
  352.  
  353. EXTERN_API( Boolean )
  354. LClick                            (Point                     pt,
  355.                                  short                     modifiers,
  356.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0018, 0xA9E7);
  357.  
  358. EXTERN_API( void )
  359. LAddToCell                        (const void *            dataPtr,
  360.                                  short                     dataLen,
  361.                                  Cell                     theCell,
  362.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x000C, 0xA9E7);
  363.  
  364. EXTERN_API( void )
  365. LClrCell                        (Cell                     theCell,
  366.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x001C, 0xA9E7);
  367.  
  368. EXTERN_API( void )
  369. LGetCell                        (void *                    dataPtr,
  370.                                  short *                dataLen,
  371.                                  Cell                     theCell,
  372.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0038, 0xA9E7);
  373.  
  374. EXTERN_API( void )
  375. LRect                            (Rect *                    cellRect,
  376.                                  Cell                     theCell,
  377.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x004C, 0xA9E7);
  378.  
  379. EXTERN_API( void )
  380. LSetCell                        (const void *            dataPtr,
  381.                                  short                     dataLen,
  382.                                  Cell                     theCell,
  383.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0058, 0xA9E7);
  384.  
  385. EXTERN_API( void )
  386. LSetSelect                        (Boolean                 setIt,
  387.                                  Cell                     theCell,
  388.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x005C, 0xA9E7);
  389.  
  390. EXTERN_API( void )
  391. LDraw                            (Cell                     theCell,
  392.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0030, 0xA9E7);
  393.  
  394. EXTERN_API( void )
  395. LGetCellDataLocation            (short *                offset,
  396.                                  short *                len,
  397.                                  Cell                     theCell,
  398.                                  ListHandle             lHandle)                            THREEWORDINLINE(0x3F3C, 0x0034, 0xA9E7);
  399.  
  400. #if CALL_NOT_IN_CARBON
  401. EXTERN_API( OSErr )
  402. SetListDefinitionProc            (SInt16                 resID,
  403.                                  ListDefUPP             defProc);
  404.  
  405. #endif  /* CALL_NOT_IN_CARBON */
  406.  
  407. #if !TARGET_OS_MAC
  408. /* QuickTime 3.0 */
  409. EXTERN_API_C( void )
  410. LSetLDEF                        (ListDefProcPtr         proc,
  411.                                  ListRef                 lHandle);
  412.  
  413. #endif  /* !TARGET_OS_MAC */
  414.  
  415. EXTERN_API_C( void )
  416. laddtocell                        (const void *            dataPtr,
  417.                                  short                     dataLen,
  418.                                  const Cell *            theCell,
  419.                                  ListHandle             lHandle);
  420.  
  421. EXTERN_API_C( void )
  422. lclrcell                        (const Cell *            theCell,
  423.                                  ListHandle             lHandle);
  424.  
  425. EXTERN_API_C( void )
  426. lgetcelldatalocation            (short *                offset,
  427.                                  short *                len,
  428.                                  const Cell *            theCell,
  429.                                  ListHandle             lHandle);
  430.  
  431. EXTERN_API_C( void )
  432. lgetcell                        (void *                    dataPtr,
  433.                                  short *                dataLen,
  434.                                  const Cell *            theCell,
  435.                                  ListHandle             lHandle);
  436.  
  437. EXTERN_API_C( ListHandle )
  438. lnew                            (const Rect *            rView,
  439.                                  const ListBounds *        dataBounds,
  440.                                  Point *                cSize,
  441.                                  short                     theProc,
  442.                                  WindowPtr                 theWindow,
  443.                                  Boolean                 drawIt,
  444.                                  Boolean                 hasGrow,
  445.                                  Boolean                 scrollHoriz,
  446.                                  Boolean                 scrollVert);
  447.  
  448. EXTERN_API_C( void )
  449. lrect                            (Rect *                    cellRect,
  450.                                  const Cell *            theCell,
  451.                                  ListHandle             lHandle);
  452.  
  453. EXTERN_API_C( void )
  454. lsetcell                        (const void *            dataPtr,
  455.                                  short                     dataLen,
  456.                                  const Cell *            theCell,
  457.                                  ListHandle             lHandle);
  458.  
  459. EXTERN_API_C( void )
  460. lsetselect                        (Boolean                 setIt,
  461.                                  const Cell *            theCell,
  462.                                  ListHandle             lHandle);
  463.  
  464. EXTERN_API_C( void )
  465. ldraw                            (const Cell *            theCell,
  466.                                  ListHandle             lHandle);
  467.  
  468. EXTERN_API_C( Boolean )
  469. lclick                            (Point *                pt,
  470.                                  short                     modifiers,
  471.                                  ListHandle             lHandle);
  472.  
  473. EXTERN_API_C( void )
  474. lcellsize                        (Point *                cSize,
  475.                                  ListHandle             lHandle);
  476.  
  477. #if OLDROUTINENAMES
  478. #define LDoDraw(drawIt, lHandle) LSetDrawingMode(drawIt, lHandle)
  479. #define LFind(offset, len, theCell, lHandle) LGetCellDataLocation(offset, len, theCell, lHandle)
  480. #if CGLUESUPPORTED
  481. #define lfind(offset, len, theCell, lHandle) lgetcelldatalocation(offset, len, theCell, lHandle)
  482. #endif
  483. #endif  /* OLDROUTINENAMES */
  484.  
  485. #if ACCESSOR_CALLS_ARE_FUNCTIONS
  486. /* Getters */
  487. EXTERN_API( Rect *)
  488. GetListViewBounds                (ListRef                 list,
  489.                                  Rect *                    view);
  490.  
  491. EXTERN_API( CGrafPtr )
  492. GetListPort                        (ListRef                 list);
  493.  
  494. EXTERN_API( Point *)
  495. GetListCellIndent                (ListRef                 list,
  496.                                  Point *                indent);
  497.  
  498. EXTERN_API( Point *)
  499. GetListCellSize                    (ListRef                 list,
  500.                                  Point *                size);
  501.  
  502. EXTERN_API( ListBounds *)
  503. GetListVisibleCells                (ListRef                 list,
  504.                                  ListBounds *            visible);
  505.  
  506. EXTERN_API( ControlHandle )
  507. GetListVerticalScrollBar        (ListRef                 list);
  508.  
  509. EXTERN_API( ControlHandle )
  510. GetListHorizontalScrollBar        (ListRef                 list);
  511.  
  512. EXTERN_API( Boolean )
  513. GetListActive                    (ListRef                 list);
  514.  
  515. EXTERN_API( SInt32 )
  516. GetListClickTime                (ListRef                 list);
  517.  
  518. EXTERN_API( Point *)
  519. GetListClickLocation            (ListRef                 list,
  520.                                  Point *                click);
  521.  
  522. EXTERN_API( Point *)
  523. GetListMouseLocation            (ListRef                 list,
  524.                                  Point *                mouse);
  525.  
  526. EXTERN_API( ListClickLoopUPP )
  527. GetListClickLoop                (ListRef                 list);
  528.  
  529. EXTERN_API( SInt32 )
  530. GetListRefCon                    (ListRef                 list);
  531.  
  532. EXTERN_API( Handle )
  533. GetListDefinition                (ListRef                 list);
  534.  
  535. EXTERN_API( Handle )
  536. GetListUserHandle                (ListRef                 list);
  537.  
  538. EXTERN_API( ListBounds *)
  539. GetListDataBounds                (ListRef                 list,
  540.                                  ListBounds *            bounds);
  541.  
  542. EXTERN_API( DataHandle )
  543. GetListDataHandle                (ListRef                 list);
  544.  
  545. EXTERN_API( OptionBits )
  546. GetListFlags                    (ListRef                 list);
  547.  
  548. EXTERN_API( OptionBits )
  549. GetListSelectionFlags            (ListRef                 list);
  550.  
  551. /* Setters */
  552. EXTERN_API( void )
  553. SetListViewBounds                (ListRef                 list,
  554.                                  const Rect *            view);
  555.  
  556. EXTERN_API( void )
  557. SetListPort                        (ListRef                 list,
  558.                                  CGrafPtr                 port);
  559.  
  560. EXTERN_API( void )
  561. SetListCellIndent                (ListRef                 list,
  562.                                  Point *                indent);
  563.  
  564. EXTERN_API( void )
  565. SetListClickTime                (ListRef                 list,
  566.                                  SInt32                 time);
  567.  
  568. EXTERN_API( void )
  569. SetListClickLoop                (ListRef                 list,
  570.                                  ListClickLoopUPP         clickLoop);
  571.  
  572. EXTERN_API( void )
  573. SetListLastClick                (ListRef                 list,
  574.                                  Cell *                    lastClick);
  575.  
  576. EXTERN_API( void )
  577. SetListRefCon                    (ListRef                 list,
  578.                                  SInt32                 refCon);
  579.  
  580. EXTERN_API( void )
  581. SetListUserHandle                (ListRef                 list,
  582.                                  Handle                 userHandle);
  583.  
  584. EXTERN_API( void )
  585. SetListFlags                    (ListRef                 list,
  586.                                  OptionBits             listFlags);
  587.  
  588. EXTERN_API( void )
  589. SetListSelectionFlags            (ListRef                 list,
  590.                                  OptionBits             selectionFlags);
  591.  
  592. /* WARNING: These may go away in a future build.  Beware! */
  593. EXTERN_API( void )
  594. SetListDefinition                (ListRef                 list,
  595.                                  Handle                 listDefProc);
  596.  
  597. EXTERN_API( void )
  598. SetListCellSize                    (ListRef                 list,
  599.                                  Point *                size);
  600.  
  601. EXTERN_API( void )
  602. SetListHorizontalScrollBar        (ListRef                 list,
  603.                                  ControlHandle             hScroll);
  604.  
  605. EXTERN_API( void )
  606. SetListVerticalScrollBar        (ListRef                 list,
  607.                                  ControlHandle             vScroll);
  608.  
  609. EXTERN_API( void )
  610. SetListVisibleCells                (ListRef                 list,
  611.                                  ListBounds *            visible);
  612.  
  613. #endif  /* ACCESSOR_CALLS_ARE_FUNCTIONS */
  614.  
  615.  
  616. #if PRAGMA_STRUCT_ALIGN
  617.     #pragma options align=reset
  618. #elif PRAGMA_STRUCT_PACKPUSH
  619.     #pragma pack(pop)
  620. #elif PRAGMA_STRUCT_PACK
  621.     #pragma pack()
  622. #endif
  623.  
  624. #ifdef PRAGMA_IMPORT_OFF
  625. #pragma import off
  626. #elif PRAGMA_IMPORT
  627. #pragma import reset
  628. #endif
  629.  
  630. #ifdef __cplusplus
  631. }
  632. #endif
  633.  
  634. #endif /* __LISTS__ */
  635.  
  636.